package py.progweb.sgc.model;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the VERSIONGRUPOREGLAS database table.
 * 
 */
@Entity
@Table(name="VERSIONGRUPOREGLAS")
public class VersionGrupoRegla extends EntidadBase implements Serializable {
	private static final long serialVersionUID = 1L;
	private long codVergrpreglaPk;
	private Date fecFechaCreacion;
	private Date fecFechaEstado;
	private Date fecVigentedesde;
	private Date fecVigentehasta;
	private String strEstado;
	private String strUsrCreacion;
	private String strUsrEstado;
	private Set<Regla> reglas;
	private GrupoRegla grupoRegla;

    public VersionGrupoRegla() {
    }


	@Id
	@SequenceGenerator(name="VERSIONGRUPOREGLAS_CODVERGRPREGLAPK_GENERATOR", sequenceName="SQ_PK_VERSIONGRUPOREGLAS")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="VERSIONGRUPOREGLAS_CODVERGRPREGLAPK_GENERATOR")
	@Column(name="COD_VERGRPREGLA_PK")
	public long getCodVergrpreglaPk() {
		return this.codVergrpreglaPk;
	}

	public void setCodVergrpreglaPk(long codVergrpreglaPk) {
		this.codVergrpreglaPk = codVergrpreglaPk;
	}


	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="FEC_FECHACREACION")
	public Date getFecFechaCreacion() {
		return this.fecFechaCreacion;
	}

	public void setFecFechaCreacion(Date fecFechaCreacion) {
		this.fecFechaCreacion = fecFechaCreacion;
	}


	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="FEC_FECHAESTADO")
	public Date getFecFechaEstado() {
		return this.fecFechaEstado;
	}

	public void setFecFechaEstado(Date fecFechaEstado) {
		this.fecFechaEstado = fecFechaEstado;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="FEC_VIGENTEDESDE")
	public Date getFecVigentedesde() {
		return this.fecVigentedesde;
	}

	public void setFecVigentedesde(Date fecVigentedesde) {
		this.fecVigentedesde = fecVigentedesde;
	}


	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="FEC_VIGENTEHASTA")
	public Date getFecVigentehasta() {
		return this.fecVigentehasta;
	}

	public void setFecVigentehasta(Date fecVigentehasta) {
		this.fecVigentehasta = fecVigentehasta;
	}


	@Column(name="ENUM_ESTADO")
	public String getStrEstado() {
		return this.strEstado;
	}

	public void setStrEstado(String strEstado) {
		this.strEstado = strEstado;
	}


	@Column(name="STR_USRCREACION")
	public String getStrUsrCreacion() {
		return this.strUsrCreacion;
	}

	public void setStrUsrCreacion(String strUsrCreacion) {
		this.strUsrCreacion = strUsrCreacion;
	}


	@Column(name="STR_USRESTADO")
	public String getStrUsrEstado() {
		return this.strUsrEstado;
	}

	public void setStrUsrEstado(String strUsrEstado) {
		this.strUsrEstado = strUsrEstado;
	}


	//bi-directional many-to-one association to Regla
	@OneToMany(mappedBy="versionGrupoRegla")
	public Set<Regla> getReglas() {
		return this.reglas;
	}

	public void setReglas(Set<Regla> reglas) {
		this.reglas = reglas;
	}
	

	//bi-directional many-to-one association to Gruporegla
    @ManyToOne
	@JoinColumn(name="COD_GRUPOREGLA")
	public GrupoRegla getGrupoRegla() {
		return this.grupoRegla;
	}

	public void setGrupoRegla(GrupoRegla gruporegla) {
		this.grupoRegla = gruporegla;
	}


	@Override
	public Object getPK() {
		return getCodVergrpreglaPk();
	}
	
}